This invention relates to a transmission/reception system, a transmission apparatus and method, a reception apparatus and method, a transmission/reception apparatus and method, and a program, and more particularly to a transmission/reception system, a transmission apparatus and method, a reception apparatus and method, a transmission/reception apparatus and method, and a program by which the load of a restoration process for a lost packet is moderated and accurate communication can be achieved readily.
Various methods have conventionally been proposed for error correction in data communication. One of such error correction method is disclosed, for example, in Japanese Patent No. 3427382 (hereinafter referred to as Patent Document 1). According to the method, where data of a plurality of channels are transmitted through a wired, wireless, an optical or some other transmission medium or a recording medium on which noise of a high level distributed over a wide frequency band is superposed, at least one of the channels is selected as an error correction channel. A result of exclusive OR or modulo addition of data of the other channels is used as data of the error correction channel. It is decided that data of a plurality of channels with regard to which decision of reception is performed or data of a plurality of channels with regard to which decision of reproduction is performed suffer from an error if a result of exclusive OR or modulo addition of decision data of the error correction channel and decision data of a channel paired with the error correction channel does not exhibit a particular value determined in advance such as “0”. Further, the quality is detected for each channel, and since the error occurrence probability of data of a channel which exhibits deterioration of the quality is high, a result of exclusive OR or modulo addition of data of the other channels except the data of the channel is replaced with the data of the channel of the quality deterioration to perform error correction.
In recent years, as data communication, streaming distribution, real time broadcasting and so forth of data such as sound and image data through a network represented by the Internet have been and are increasing progressively thanks to development of a broadband communication network.
In such data distribution through a network as described above, packet loss sometimes occurs in the network, and it is sometimes impossible to cope with such packet loss only by such error correction for received data as described above.
Thus, error correction methods for a lost packet have been proposed. For example, according to one of such error correction methods, the receiver side performs re-sending control of issuing a request to re-send a lost packet to the sender side. Also an error detection and correction method (FEC: Forward Error Correction) which uses the Reed Solomon code has been proposed and is disclosed in Japanese Patent Laid-Open No. Hei 11-136220 (hereinafter referred to as Patent Document 2).
In the error correction process for a lost packet by the Reed Solomon code, the transmission apparatus produces an error correction code for transmission data for every block unit of a predetermined size, produces a redundant packet from the error correction code, and distributes the produced redundant packet together with packetized original or base data.
The reception apparatus receives the packet of the base data and the redundant packet distributed in this manner. Then, if the packet of the base data is lost, then the lost packet is restored using the received redundant packet.
However, in the method which performs re-sending control described above, every time packet loss occurs, a re-sending request is supplied from the receiver side to the sender side. Therefore, error correction can be performed with a high probability. However, where data are transmitted to a plurality of apparatus as in multicast distribution, re-sending requests supplied from various apparatus on the receiver side are concentrated on the sender side apparatus, resulting in the possibility that the load to the sender side apparatus may increase. Further, since such re-sending control as described above involves communication, predetermined time is required for an error correction process. Thus, for example, where real-time processing is required for reproduction of the receiver side as in the case of streaming distribution, there is the possibility that the processing may not be performed in time.
On the other hand, in the case of such an error detection and correction method which uses the Reed Solomon code as described above, arithmetic operation on a Galois field is required in a process for production of redundant data or a process for restoration of a lost packet. Therefore, the error detection and correction method has a subject to be solved that such arithmetic operation increases the load of the transmission and reception process.
Accordingly, for example, when a contents distribution server distributes contents data by streaming distribution to a large number of terminal apparatus as in multicast or broadcast distribution, where such an error detection and correction method which uses the Reed Solomon code as described above is applied, the real-time process is required for distribution processing to perform the streaming distribution. Therefore, high-performance hardware specifications which can execute a redundant packet production process of a high load at a high speed are required for the distribution server, and consequently, an increased cost is required for the distribution server. Similarly, also for a terminal apparatus which executes a restoration process, high-performance hardware specifications are required, resulting in increase of the production cost.
Thus, it seems a possible idea to reduce redundant packets to be produced in order to decrease arithmetic operation processing on a Galois field thereby to lower the production cost. However, if the redundant packets are reduced, then the packet restoration performance drops, and if error correction is impossible, then it is sometimes necessary to issue a request for re-sending of the packet.
However, in the case of multicast or broadcast distribution, if a distribution server processes all re-sending request from various terminal apparatus while it performs distribution, then the load increases and may possibly have an influence on the distribution process. Further, in the case of streaming distribution, since the real-time processing is required also for re-sending requests, it is actually difficult for the distribution server to respond normally to such re-sending requests. Thus, there is the possibility that the streaming distribution may not be performed normally.